
package com.mu.rai.services;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for dosAttack complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="dosAttack">
 *   &lt;complexContent>
 *     &lt;extension base="{http://services.rai.mu.com}attack">
 *       &lt;sequence>
 *         &lt;element name="availability_monitor" type="{http://services.rai.mu.com}instrumentation"/>
 *         &lt;element name="force_restart" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
 *         &lt;element name="dos_pattern" type="{http://services.rai.mu.com}dosPattern"/>
 *         &lt;choice>
 *           &lt;element name="ip_dos_protocol" type="{http://services.rai.mu.com}ipDosProtocol"/>
 *           &lt;element name="layer2_dos_protocol" type="{http://services.rai.mu.com}layer2DosProtocol"/>
 *           &lt;element name="tcp_dos_protocol" type="{http://services.rai.mu.com}tcpDosProtocol"/>
 *           &lt;element name="udp_dos_protocol" type="{http://services.rai.mu.com}udpDosProtocol"/>
 *         &lt;/choice>
 *         &lt;element name="sampling_interval" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "dosAttack", propOrder = {
    "availabilityMonitor",
    "forceRestart",
    "dosPattern",
    "ipDosProtocol",
    "layer2DosProtocol",
    "tcpDosProtocol",
    "udpDosProtocol",
    "samplingInterval"
})
public class DosAttack
    extends Attack
{

    @XmlElement(name = "availability_monitor", required = true)
    protected Instrumentation availabilityMonitor;
    @XmlElement(name = "force_restart")
    protected boolean forceRestart;
    @XmlElement(name = "dos_pattern", required = true)
    protected DosPattern dosPattern;
    @XmlElement(name = "ip_dos_protocol")
    protected IpDosProtocol ipDosProtocol;
    @XmlElement(name = "layer2_dos_protocol")
    protected Layer2DosProtocol layer2DosProtocol;
    @XmlElement(name = "tcp_dos_protocol")
    protected TcpDosProtocol tcpDosProtocol;
    @XmlElement(name = "udp_dos_protocol")
    protected UdpDosProtocol udpDosProtocol;
    @XmlElement(name = "sampling_interval")
    protected int samplingInterval;

    /**
     * Gets the value of the availabilityMonitor property.
     * 
     * @return
     *     possible object is
     *     {@link Instrumentation }
     *     
     */
    public Instrumentation getAvailabilityMonitor() {
        return availabilityMonitor;
    }

    /**
     * Sets the value of the availabilityMonitor property.
     * 
     * @param value
     *     allowed object is
     *     {@link Instrumentation }
     *     
     */
    public void setAvailabilityMonitor(Instrumentation value) {
        this.availabilityMonitor = value;
    }

    /**
     * Gets the value of the forceRestart property.
     * 
     */
    public boolean isForceRestart() {
        return forceRestart;
    }

    /**
     * Sets the value of the forceRestart property.
     * 
     */
    public void setForceRestart(boolean value) {
        this.forceRestart = value;
    }

    /**
     * Gets the value of the dosPattern property.
     * 
     * @return
     *     possible object is
     *     {@link DosPattern }
     *     
     */
    public DosPattern getDosPattern() {
        return dosPattern;
    }

    /**
     * Sets the value of the dosPattern property.
     * 
     * @param value
     *     allowed object is
     *     {@link DosPattern }
     *     
     */
    public void setDosPattern(DosPattern value) {
        this.dosPattern = value;
    }

    /**
     * Gets the value of the ipDosProtocol property.
     * 
     * @return
     *     possible object is
     *     {@link IpDosProtocol }
     *     
     */
    public IpDosProtocol getIpDosProtocol() {
        return ipDosProtocol;
    }

    /**
     * Sets the value of the ipDosProtocol property.
     * 
     * @param value
     *     allowed object is
     *     {@link IpDosProtocol }
     *     
     */
    public void setIpDosProtocol(IpDosProtocol value) {
        this.ipDosProtocol = value;
    }

    /**
     * Gets the value of the layer2DosProtocol property.
     * 
     * @return
     *     possible object is
     *     {@link Layer2DosProtocol }
     *     
     */
    public Layer2DosProtocol getLayer2DosProtocol() {
        return layer2DosProtocol;
    }

    /**
     * Sets the value of the layer2DosProtocol property.
     * 
     * @param value
     *     allowed object is
     *     {@link Layer2DosProtocol }
     *     
     */
    public void setLayer2DosProtocol(Layer2DosProtocol value) {
        this.layer2DosProtocol = value;
    }

    /**
     * Gets the value of the tcpDosProtocol property.
     * 
     * @return
     *     possible object is
     *     {@link TcpDosProtocol }
     *     
     */
    public TcpDosProtocol getTcpDosProtocol() {
        return tcpDosProtocol;
    }

    /**
     * Sets the value of the tcpDosProtocol property.
     * 
     * @param value
     *     allowed object is
     *     {@link TcpDosProtocol }
     *     
     */
    public void setTcpDosProtocol(TcpDosProtocol value) {
        this.tcpDosProtocol = value;
    }

    /**
     * Gets the value of the udpDosProtocol property.
     * 
     * @return
     *     possible object is
     *     {@link UdpDosProtocol }
     *     
     */
    public UdpDosProtocol getUdpDosProtocol() {
        return udpDosProtocol;
    }

    /**
     * Sets the value of the udpDosProtocol property.
     * 
     * @param value
     *     allowed object is
     *     {@link UdpDosProtocol }
     *     
     */
    public void setUdpDosProtocol(UdpDosProtocol value) {
        this.udpDosProtocol = value;
    }

    /**
     * Gets the value of the samplingInterval property.
     * 
     */
    public int getSamplingInterval() {
        return samplingInterval;
    }

    /**
     * Sets the value of the samplingInterval property.
     * 
     */
    public void setSamplingInterval(int value) {
        this.samplingInterval = value;
    }

}
